package me.exchange.com.modules.system.service;

import me.exchange.com.modules.system.domain.Appt;
import me.exchange.com.modules.system.dto.ApptDto;
import me.exchange.com.modules.system.dto.ApptQueryCriteria;
import org.springframework.data.domain.Pageable;

import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;
import java.util.Map;
import java.util.Set;

/**
 * @author zhaojing
 * @create2020/5/20
 */
public interface ApptService {

    /**
     * 根据id查询
     * @param id
     * @return
     */
    ApptDto findById(Integer id);

    /**
     * 创建
     * @param resources
     * @return
     */
    ApptDto create(Appt resources);

    /**
     * 编辑
     * @param resources
     * @return
     */
    void update(Appt resources);

    /**
     * 删除
     * @param id
     */
    void delete(Integer id);

    /**
     * 多选删除
     * @param ids
     */
    void deleteAll(Set<Integer> ids);

    /**
     * 导出数据
     * @param all
     * @param response
     * @throws IOException
     */
    void download(List<ApptDto> all, HttpServletResponse response ) throws IOException;

    /**
     * 查询
     * @param criteria
     * @return
     */
    List<ApptDto> queryAll(ApptQueryCriteria criteria);

    /**
     * 分页查询
     * @param criteria
     * @param pageable
     * @return
     */
    Map<String,Object> queryAll(ApptQueryCriteria criteria, Pageable pageable);

    /**
     * 编辑app类型
     * @param criteria
     */
    void updataType(ApptQueryCriteria criteria);


}
